home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 October: Mac OS SDK / Dev.CD Oct 00 SDK1.toast / Development Kits / Mac OS / AppleShare IP 6.3 SDK / ASIP Server Controls⁄Events / Headers / AppleShareFileServerControl.p < prev   
Encoding:
Text File  |  1999-11-01  |  33.0 KB  |  1,046 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        AppleShareFileServerControl.p
  3.  
  4.      Contains:    Interface definitions for Server Control calls, and Server Event constants;
  5.  
  6.      Version:    Technology:    AppleShare IP 6.0
  7.                  Release:    ASIP 6.2 SDK - Wednesday, August 25, 1999 09:29:55
  8.  
  9.      Copyright:    © 1995-1999 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT AppleShareFileServerControl;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __APPLESHAREFILESERVERCONTROL__}
  27. {$SETC __APPLESHAREFILESERVERCONTROL__ := 1}
  28.  
  29. {$I+}
  30. {$SETC AppleShareFileServerControlIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __APPLETALK__}
  34. {$I AppleTalk.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __FILES__}
  37. {$I Files.p}
  38. {$ENDC}
  39. {$IFC UNDEFINED __MIXEDMODE__}
  40. {$I MixedMode.p}
  41. {$ENDC}
  42. {$IFC UNDEFINED __TRAPS__}
  43. {$I Traps.p}
  44. {$ENDC}
  45.  
  46.  
  47. {$PUSH}
  48. {$ALIGN MAC68K}
  49. {$LibExport+}
  50.  
  51. {  Server Control Codes ----------------------------------------------------------------------------  }
  52.  
  53. CONST
  54.     kSCStartServer                = 0;                            {  Use StartParam variant  }
  55.     kSCShutDown                    = 2;                            {  Use DisconnectParam variant  }
  56.     kSCCancelShutDown            = 3;                            {  Use DisconnectParam variant  }
  57.     kSCDisconnect                = 4;                            {  Use DisconnectParam variant  }
  58.     kSCPollServer                = 5;                            {  Use PollServerParam variant  }
  59.     kSCGetExpFldr                = 6;                            {  Use StandardParam variant  }
  60.     kSCGetSetupInfo                = 7;                            {  Use SetupParam variant  }
  61.     kSCSetSetupInfo                = 8;                            {  Use SetupParam variant  }
  62.     kSCSendMessage                = 9;                            {  Use DisconnectParam variant  }
  63.     kSCGetServerStatus            = 10;                            {  Use StatusParam variant  }
  64.     kSCInstallServerEventProc    = 11;                            {  Use ServerEventParam variant  }
  65.     kSCRemoveServerEventProc    = 12;                            {  Use ServerEventParam variant  }
  66.     kSCGetServerEventProc        = 13;                            {  Use ServerEventParam variant  }
  67.     kSCServerVersion            = 14;                            {  Use VersionParam variant  }
  68.     kSCSetCopyProtect            = 16;                            {  Use StandardParam variant  }
  69.     kSCClrCopyProtect            = 17;                            {  Use StandardParam variant  }
  70.     kSCDisconnectVolUsers        = 18;                            {  Use DisconnectParam variant  }
  71.     kSCGetUserNameRec            = 19;                            {  Use UserInfoParam variant  }
  72.     kSCGetUserMountInfo            = 20;                            {  Use VolMountedParam variant  }
  73.     kSCWakeServer                = 21;                            {  Use StartParam variant  }
  74.     kSCSleepServer                = 22;                            {  Use DisconnectParam variant  }
  75.     kSCGetCacheStats            = 23;                            {  Use GetCacheStatsParam variant  }
  76.     kSCResetCache                = 31;                            {  Use ResetCacheParam variant  }
  77.     kSCGetExtUserNameRec        = 35;                            {  Use ExtUserInfoParam variant  }
  78.     kSCServiceStateInfo            = 38;                            {  Use ServiceStateParam variant  }
  79.     kSCGetPlugInInfo            = 41;                            {  Use PlugInInfoParam variant  }
  80.     kSCGetPlugInMimeType        = 42;                            {  Use PlugInMimeTypeParam variant  }
  81.     kSCSetHistorySampleTime        = 43;                            {  Use SetHistoryParam variant  }
  82.     kSCGetServerActivityHistory    = 44;                            {  Use GetHistoryParam variant }
  83.     kSCGetSMBConfig                = 46;                            {  Use SMBConfigParam variant }
  84.     kSCBlockGetUserList            = 47;                            {  Use BlockUserRecParam variant }
  85.  
  86. {  General Constants -------------------------------------------------------------------------------  }
  87. {  PollServer scServerState responses...  }
  88.     kSCPollRunning                = -1;
  89.     kSCPollStartingUp            = -2;
  90.     kSCPollJustDisabled            = -3;
  91.     kSCPollDisabledErr            = -4;
  92.     kSCPollSleeping                = -5;
  93.  
  94. {  PollServer scDisconnectState responses...  }
  95.     kSCNotDisconnecting            = -1;
  96.     kSCDisconnectWithin29Secs    = 0;
  97.     kSCDisconnect30To89Secs        = 1;                            {  Any other value is the number of minutes remaining, rounded...  }
  98.  
  99. {  PollServer scServerErrors responses...  }
  100.     kSCModernMemMgrOffErr        = 1;                            {  Must run with Modern Memory Manager  }
  101.     kSCNoThreadLibraryErr        = 2;
  102.     kSCServiceNotInstalledErr    = 3;
  103.     kSCInsuffMFMemErr            = 4;
  104.     kSCCantRegNameErr            = 5;
  105.     kSCCantFindExtnFolderErr    = 6;
  106.     kSCUnExATalkErr                = 7;
  107.     kSCNoMachineNameErr            = 8;
  108.     kSCCantFindFSExtnErr        = 9;
  109.     kSCATalkOffErr                = 10;
  110.     kSCNoInitRunErr                = 12;
  111.     kSCInsuffAppMemErr            = 14;
  112.     kSCBadConfigErr                = 15;
  113.     kSCNoDTOnStartupErr            = 16;
  114.     kSCDupNameErr                = 17;
  115.     kSCBadFileBufParmsErr        = 19;
  116.     kSCNeedRootUserErr            = 20;                            {  The range 21-28 are reserved for future use by Apple.  }
  117.     kSCBadSerialNumErr            = 29;
  118.     kSCSysTooOldErr                = 34;
  119.     kSCDupSerialNumberErr        = 36;                            {  NBP dup serial number detected  }
  120.     kSCVMOnErr                    = 37;                            {  Virtual Memory is turned on on server machine  }
  121.     kSCNoPPCErr                    = 38;                            {  Server only runs on a ppc machine  }
  122.     kSCBadInitErr                = 39;
  123.     kSCOpenTransportInstallErr    = 40;                            {  Incompatible version of Open Transport  }
  124.     kSCNoAgentLibErr            = 41;                            {  No ASRLib  }
  125.     kSCNoAgentSessionErr        = 42;                            {  Could not open an agent session  }
  126.     kSCInvalidAgentErr            = 43;                            {  No agent or a problem with the agent  }
  127.     kSCAgentServerObjErr        = 44;                            {  Bad server object type.  }
  128.     kSCAgentGenesisErr            = 46;
  129.     kSCAlreadyShuttingDown        = -1;
  130.     kSCAlreadyDisconnecting        = -2;
  131.     kSCDeletedPDSErr            = -2;
  132.     kSCContainsExpFolderErr        = -3;
  133.     kSCCantPrepareVolumeErr        = -4;
  134.     kSCTooManyExpFoldersErr        = -5;
  135.     kSCFixedPDSErr                = -6;
  136.     kSCExpFolderNamConfErr        = -7;
  137.     kSCNoExportFolderErr        = -8;
  138.     kSCInsideExpFolderErr        = -9;
  139.     kSCInsideTrashErr            = -10;
  140.     kSCVolNameConflictErr        = -11;
  141.     kSCCacheReducedErr            = -12;
  142.     kSCBadIPConfigErr            = -20;
  143.     kSCBadAccessPrivRecErr        = -21;
  144.     kSCBadMimeTypeFileErr        = -22;
  145.     kSCDuplicateVolumeErr        = -23;                            {  Second volume with same name will not be shared  }
  146.                                                                 {  -100 to -199 are AFP errors  }
  147.     kSCAFPGenErr                = -100;
  148.     kSCAFPTCPGenErr                = -150;
  149.     kSCAFPTCPMemErr                = -151;
  150.     kSCAFPTCPPortInUseErr        = -152;                            {  -200 to -299 are FTP errors  }
  151.     kSCFTPGenErr                = -200;
  152.     kSCFTPPortInUseErr            = -201;
  153.     kSCFTPNotAvailErr            = -202;
  154.     kSCFTPMemErr                = -203;                            {  -300 to -399 are Web errors  }
  155.     kSCHTTPGenErr                = -300;
  156.     kSCHTTPPortInUseErr            = -302;
  157.     kSCHTTPFolderErr            = -303;
  158.     kSCHTTPFileErr                = -304;
  159.     kSCHTTPMemErr                = -305;
  160.     kSCHTTPNoMimeTypesErr        = -306;
  161.     kSCHTTPNoDefaultMimeErr        = -307;
  162.     kSCPluginDirNotFoundErr        = -308;
  163.     kSCPluginMemFullErr            = -309;
  164.     kSCPluginPreProcNotFoundErr    = -310;
  165.     kSCPluginPostProcNotFoundErr = -311;
  166.     kSCErrorPluginNotFoundErr    = -312;
  167.     kSCPluginNotPreProcessorErr    = -313;
  168.     kSCPluginNotPostProcessorErr = -314;
  169.     kSCPluginMemPoolFullErr        = -315;
  170.     kSCPluginOutOfMemoryErr        = -316;
  171.     kSCCorruptedMimeTypesErr    = -317;
  172.     kSCPlugInLoggingErr            = -318;
  173.     kSCPlugInTypeConflictErr    = -319;
  174.     kSCPlugInCannotRegisterErr    = -320;
  175.     kSCPlugInMemSmallErr        = -321;
  176.     kSCWebAdminNetworkErr        = -330;                            {  -400 to -499 are SMB errors   }
  177.     kSCSMBGenErr                = -400;
  178.     kSCSMBPortInUseErr            = -402;
  179.     kSCSMBMemErr                = -405;
  180.  
  181. {  Define times for shutdown...  }
  182.     kSCMaxTimer                    = 4094;
  183.     kSCMinTimer                    = 0;
  184.  
  185. {  Plugin errors (PlugInMimeTypeParam, PlugInInfoParam)...  }
  186.     kSCPlugInNoErr                = 0;
  187.     kSCPlugInWrongVersionErr    = 1;
  188.     kSCPlugInBadIndexErr        = 2;
  189.     kSCPlugInPlugInsNotLoadedErr = 3;
  190.     kSCPlugInBadPlugInRefErr    = 4;
  191.  
  192. {  Plugin info dimensions (C-strings)...  }
  193.     kSCPlugInNameSize            = 32;
  194.     kSCPlugInAdminURLSize        = 256;
  195.     kSCPlugInVersionStrSize        = 12;
  196.     kSCMimeTypeSize                = 80;
  197.     kSCSuffixSize                = 32;
  198.  
  199. {  Number of samples in ServerHistoryRec...  }
  200.     kSCMaxDataPoints            = 1024;
  201.  
  202. {  For siVersion field of SetupInfoRec... }
  203.     kSCSetUpRecordVersion        = 3;
  204.  
  205. {  VersionParam's scServerType contains the server type, which is interpreted as follows:  }
  206.     kSCMFSServerType            = $0000;                        {  Macintosh File Sharing  }
  207.     kSCAFSServerType            = $0001;                        {  AppleShare/AppleShare IP File Server  }
  208.  
  209. {$IFC UNDEFINED SCCACHESTATSRECVERS3 }
  210. {$SETC SCCACHESTATSRECVERS3 := 1 }
  211. {  For csVersion field of SCCacheStatsRec...  }
  212.     kSCCacheStatsRecVersion        = 3;
  213.  
  214. {$ENDC}
  215.  
  216. {  Current version number of scFileInfoRec block...  }
  217.     kSCFileInfoRecVersion        = 1;
  218.  
  219. {  Parameters for the "bitmap" field of ResetCacheParam...  }
  220.     kSCResetFileCache            = $0001;
  221.     kSCResetCNodeCache            = $0002;
  222.     kSCResetDTCache                = $0004;
  223.     kSCShrinkCache                = $8000;
  224.     kSCShrinkAllCaches            = $8007;
  225.  
  226. {  For attrVersion field of ExtUserInfoParam...  }
  227.     kSCOldUserAttrRecVersion    = 0;
  228.     kSCUserAttrRecVersion        = 1;
  229.  
  230. {  Current session layers for scProtocolType field of UserAttrRec...  }
  231.     kSCSessionInvalid            = $0000;
  232.     kSCSessionAll                = 'alls';
  233.     kSCSessionAFP                = 'afp ';
  234.     kSCSessionHTTP                = 'http';
  235.     kSCSessionFTP                = 'ftp ';
  236.     kSCSessionSMB                = 'smb ';
  237.     kSCSessionNFS                = 'nfs ';
  238.  
  239. {  Current transport layers for scTransportType field of UserAttrRec...  }
  240.     kSCTransportATP                = 'atp ';
  241.     kSCTransportTCP                = 'tcp ';
  242.  
  243. {  For version field of PlugInInfoParam...  }
  244.     kSCPlugInInfoParamVersion    = 0;
  245.  
  246. {  For plugInAttributes field of PlugInInfoParam...  }
  247.     kSCAttPreProcessor            = $00000001;                    {  works as a preprocessor  }
  248.     kSCAttPostProcessor            = $00000002;                    {  works as a postprocessor  }
  249.     kSCAttFilter                = $00000004;                    {  works as filter  }
  250.     kSCAttAccessControl            = $00000008;                    {  works as access control  }
  251.     kSCAttErrorProcessor        = $00000010;                    {  works as error processor  }
  252.  
  253. {  Current version number of SCSrvrMsgsRec...  }
  254.     kSCSrvrMsgsRecVersion        = 1;
  255.  
  256. {  For version field of PlugInMimeTypeParam...  }
  257.     kSCPlugInMimeTypeParamVersion = 0;
  258.  
  259. {  For version field of BlockUserRecParam... }
  260.     kSCBlockGetUserRecObsoleteVersion1 = 1;
  261.     kSCBlockGetUserRecVersion    = 2;
  262.  
  263. {  Flags for user in BlockUserRecParam... }
  264.     kSCFlagUserSleeping            = $00000001;
  265.  
  266. {  Other service states... }
  267.     kSCFTPServiceBit            = $01;
  268.     kSCSMBServiceBit            = $02;
  269.  
  270. {  Misc params... }
  271.     kSCCurrentlyInstalled        = 0;
  272.     kSCUseFinderExtension        = 0;
  273.     kSCStartingEntity            = 1;
  274.     kSCStartingExtension        = 2;
  275.     kSCUseMessagePtr            = 1;
  276.  
  277. {  Server Event Detail -----------------------------------------------------------------------------  }
  278. {
  279.    Bit names for the serverEventMask field of ServerEventQEntry; event numbers returned in
  280.    ServerEventRecord... 
  281. }
  282.     kSCStartAFPRequestEvt        = 0;                            {  also set afpCommandMask for these  }
  283.     kSCSendAFPResponseEvt        = 1;
  284.  
  285.     kSCServerControlCallEvt        = 4;                            {  also set serverControlMask for this  }
  286.  
  287.     kSCServerBusyEvt            = 2;
  288.     kSCServerShutdownEvt        = 3;
  289.     kSCShareEvt                    = 5;
  290.     kSCUnShareEvt                = 6;
  291.     kSCSetDirAccessEvt            = 7;
  292.     kSCServerNameChangeEvt        = 8;
  293.     kSCVolumePrepEvt            = 9;
  294.     kSCVolumeUnmountEvt            = 10;
  295.     kSCServerStartupEvt            = 11;
  296.     kSCSessionTornDownEvt        = 12;
  297.     kSCOutOfSequenceEvt            = 13;
  298.     kSCWksClosedSessionEvt        = 14;
  299.     kSCSessionTimedOutEvt        = 15;
  300.     kSCSrvrClosedSessionEvt        = 16;
  301.     kSCExtendedServerEvtRec        = 31;
  302.  
  303. {  Maximum size of the Buffer in the ServerEventRecord...  }
  304.     kBufferMax                    = 48;
  305.  
  306.  
  307. TYPE
  308.     IPBlockPtr = ^IPBlock;
  309.     IPBlock = RECORD
  310.         part:                    PACKED ARRAY [0..3] OF UInt8;
  311.     END;
  312.  
  313.     UserAddressPtr = ^UserAddress;
  314.     UserAddress = RECORD
  315.         CASE INTEGER OF
  316.         0: (
  317.             wholeAddress:        UInt32;
  318.             );
  319.         1: (
  320.             appleTalkAddress:    AddrBlock;
  321.             );
  322.         2: (
  323.             ipAddress:            IPBlock;
  324.             );
  325.     END;
  326.  
  327.     ServerEventRecordPtr = ^ServerEventRecord;
  328.     ServerEventRecord = RECORD
  329.         eventNumber:            SInt32;
  330.         serverTimeInSeconds:    UInt32;
  331.         result:                    SInt16;
  332.         bufferSize:                SInt16;
  333.         buffer:                    PACKED ARRAY [0..47] OF CHAR;
  334.         nameStr:                Str31;
  335.         afpCommand:                SInt16;
  336.         sessionID:                SInt32;
  337.         userID:                    SInt32;
  338.         userName:                Str31;
  339.         vRefNum:                SInt16;
  340.         dirID:                    SInt32;
  341.         addr:                    UserAddress;
  342.     END;
  343.  
  344. {  For annexVersion field; set by server to indicate version of record...  }
  345.  
  346. CONST
  347.     kServerEventAnnexVersion6    = $06000000;
  348.  
  349.  
  350. TYPE
  351.     ExtendedServerEventRecordPtr = ^ExtendedServerEventRecord;
  352.     ExtendedServerEventRecord = RECORD
  353.         eventNumber:            SInt32;
  354.         serverTimeInSeconds:    UInt32;
  355.         result:                    SInt16;
  356.         bufferSize:                SInt16;
  357.         buffer:                    PACKED ARRAY [0..47] OF CHAR;
  358.         nameStr:                Str31;
  359.         afpCommand:                SInt16;
  360.         sessionID:                SInt32;
  361.         userID:                    SInt32;
  362.         userName:                Str31;
  363.         vRefNum:                SInt16;
  364.         dirID:                    SInt32;
  365.         addr:                    UserAddress;
  366.         transportType:            FourCharCode;
  367.         annexVersion:            UInt32;
  368.     END;
  369.  
  370. {$IFC TYPED_FUNCTION_POINTERS}
  371.     ServerEventHandlerProcPtr = PROCEDURE(entry: ServerEventQEntryPtr; VAR event: ExtendedServerEventRecord);
  372. {$ELSEC}
  373.     ServerEventHandlerProcPtr = ProcPtr;
  374. {$ENDC}
  375.  
  376.     ServerEventHandlerUPP = UniversalProcPtr;
  377.     ServerEventQEntryPtr = ^ServerEventQEntry;
  378.     ServerEventQEntry = RECORD
  379.         next:                    ServerEventQEntryPtr;
  380.         queuetype:                SInt16;
  381.         callBack:                ServerEventHandlerUPP;
  382.         serverEventMask:        SInt32;
  383.         afpCommandMask:            ARRAY [0..1] OF SInt32;
  384.         serverControlMask:        SInt32;
  385.     END;
  386.  
  387.  
  388. CONST
  389.     uppServerEventHandlerProcInfo = $000003C0;
  390.  
  391. FUNCTION NewServerEventHandlerUPP(userRoutine: ServerEventHandlerProcPtr): ServerEventHandlerUPP; { old name was NewServerEventHandlerProc }
  392.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  393.     INLINE $2E9F;
  394.     {$ENDC}
  395.  
  396. PROCEDURE DisposeServerEventHandlerUPP(userUPP: ServerEventHandlerUPP);
  397.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  398.     INLINE $584F;
  399.     {$ENDC}
  400. {  Server Control Data Structures ------------------------------------------------------------------  }
  401. {
  402.    Since all calls are made through ServerDispatchSync, ioCompletion is ignored, so this is for
  403.    completeness only..., 
  404. }
  405.  
  406. TYPE
  407.     SCCompletionUPP                        = UniversalProcPtr;
  408.     StartParamPtr = ^StartParam;
  409.     StartParam = RECORD
  410.         qLink:                    QElemPtr;                                { queue link in header }
  411.         qType:                    SInt16;                                    { type byte for safety check }
  412.         ioTrap:                    SInt16;                                    { FS: the Trap }
  413.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  414.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  415.         ioResult:                OSErr;                                    { result code }
  416.         reserved:                SInt32;
  417.         reserved2:                SInt16;
  418.         reserved3:                SInt16;
  419.         scCode:                    SInt16;
  420.         scStartSelect:            SInt16;
  421.         scEventSelect:            SInt16;
  422.         scWhere:                SInt32;
  423.         scReceiverID:            SInt32;
  424.         scDataType:                SInt32;
  425.         scStartOptions:            SInt32;
  426.     END;
  427.  
  428.     DisconnectParamPtr = ^DisconnectParam;
  429.     DisconnectParam = RECORD
  430.         qLink:                    QElemPtr;                                { queue link in header }
  431.         qType:                    SInt16;                                    { type byte for safety check }
  432.         ioTrap:                    SInt16;                                    { FS: the Trap }
  433.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  434.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  435.         ioResult:                OSErr;                                    { result code }
  436.         scDiscArrayPtr:            LongIntPtr;
  437.         scArrayCount:            SInt16;
  438.         reserved:                SInt16;
  439.         scCode:                    SInt16;
  440.         scNumMinutes:            SInt16;
  441.         scFlags:                SInt16;
  442.         scMessagePtr:            StringPtr;
  443.     END;
  444.  
  445.     PollServerParamPtr = ^PollServerParam;
  446.     PollServerParam = RECORD
  447.         qLink:                    QElemPtr;                                { queue link in header }
  448.         qType:                    SInt16;                                    { type byte for safety check }
  449.         ioTrap:                    SInt16;                                    { FS: the Trap }
  450.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  451.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  452.         ioResult:                OSErr;                                    { result code }
  453.         reserved:                SInt32;
  454.         reserved2:                SInt16;
  455.         reserved3:                SInt16;
  456.         scCode:                    SInt16;
  457.         scServerState:            SInt16;
  458.         scDisconnectState:        SInt16;
  459.         scServerError:            SInt16;
  460.         scSecondsLeft:            SInt32;
  461.     END;
  462.  
  463.     StandardParamPtr = ^StandardParam;
  464.     StandardParam = RECORD
  465.         qLink:                    QElemPtr;                                { queue link in header }
  466.         qType:                    SInt16;                                    { type byte for safety check }
  467.         ioTrap:                    SInt16;                                    { FS: the Trap }
  468.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  469.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  470.         ioResult:                OSErr;                                    { result code }
  471.         scNamePtr:                StringPtr;
  472.         scVRefNum:                SInt16;
  473.         scLogins:                SInt16;
  474.         scCode:                    SInt16;
  475.         scIndex:                SInt16;
  476.         scDirID:                SInt32;
  477.     END;
  478.  
  479.     Str198                                = STRING[198];
  480.     SetupInfoRecPtr = ^SetupInfoRec;
  481.     SetupInfoRec = RECORD
  482.         siVersion:                SInt16;
  483.         siFlags:                SInt16;
  484.         siMaxLogins:            SInt16;
  485.         siSrvrUsageLimit:        SInt16;
  486.         siVolInfoLocation:        Point;
  487.         siVolInfoVisible:        BOOLEAN;
  488.         siReserved1:            BOOLEAN;
  489.         siUserInfoLocation:        Point;
  490.         siUserInfoVisible:        BOOLEAN;
  491.         siReserved2:            BOOLEAN;
  492.         siShutDownMins:            SInt16;
  493.         siCacheControl:            SInt16;                                    {  no longer used  }
  494.         siVolParmsStepSize:        SInt16;
  495.         siVolParmsIncrement:    SInt16;
  496.         siVolParmsFirstDelay:    SInt16;
  497.         siVolParmsMaxDelay:        SInt16;
  498.         siRACacheFileBufSize:    SInt32;                                    {  no longer used  }
  499.         siRACacheSize:            SInt32;                                    {  no longer used  }
  500.         siDirCacheMaxWidth:        SInt16;                                    {  no longer used  }
  501.         siDirCacheSize:            SInt32;                                    {  no longer used  }
  502.         siIconCacheSize:        SInt32;                                    {  no longer used  }
  503.         siBTMemReservedFromCache: SInt32;
  504.         siSpare:                ARRAY [0..0] OF SInt16;                    {  reserved  }
  505.         siLoginMsg:                Str198;
  506.     END;
  507.  
  508.     SetupInfoPtr                        = ^SetupInfoRec;
  509.     SetupParamPtr = ^SetupParam;
  510.     SetupParam = RECORD
  511.         qLink:                    QElemPtr;                                { queue link in header }
  512.         qType:                    SInt16;                                    { type byte for safety check }
  513.         ioTrap:                    SInt16;                                    { FS: the Trap }
  514.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  515.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  516.         ioResult:                OSErr;                                    { result code }
  517.         scSetupPtr:                SetupInfoPtr;
  518.         scMaxVolumes:            SInt16;
  519.         scMaxExpFolders:        SInt16;
  520.         scCode:                    SInt16;
  521.         scCurMaxSessions:        SInt16;
  522.     END;
  523.  
  524.     StatusParamPtr = ^StatusParam;
  525.     StatusParam = RECORD
  526.         qLink:                    QElemPtr;                                { queue link in header }
  527.         qType:                    SInt16;                                    { type byte for safety check }
  528.         ioTrap:                    SInt16;                                    { FS: the Trap }
  529.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  530.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  531.         ioResult:                OSErr;                                    { result code }
  532.         scNamePtr:                StringPtr;
  533.         reserved2:                SInt16;
  534.         reserved3:                SInt16;
  535.         scCode:                    SInt16;
  536.         scServerFlags:            SInt16;
  537.         scNumSessions:            SInt16;
  538.         scUserListModDate:        SInt32;
  539.         scActivity:                SInt16;
  540.         scVolListModDate:        SInt32;
  541.     END;
  542.  
  543.     ServerEventParamPtr = ^ServerEventParam;
  544.     ServerEventParam = RECORD
  545.         qLink:                    QElemPtr;                                { queue link in header }
  546.         qType:                    SInt16;                                    { type byte for safety check }
  547.         ioTrap:                    SInt16;                                    { FS: the Trap }
  548.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  549.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  550.         ioResult:                OSErr;                                    { result code }
  551.         scSEQEntryPtr:            ServerEventQEntryPtr;
  552.         reserved2:                SInt16;
  553.         reserved3:                SInt16;
  554.         scCode:                    SInt16;
  555.     END;
  556.  
  557.     VersionParamPtr = ^VersionParam;
  558.     VersionParam = RECORD
  559.         qLink:                    QElemPtr;                                { queue link in header }
  560.         qType:                    SInt16;                                    { type byte for safety check }
  561.         ioTrap:                    SInt16;                                    { FS: the Trap }
  562.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  563.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  564.         ioResult:                OSErr;                                    { result code }
  565.         scExtNamePtr:            StringPtr;
  566.         reserved2:                SInt16;
  567.         reserved3:                SInt16;
  568.         scCode:                    SInt16;
  569.         scServerType:            SInt16;
  570.         scServerVersion:        SInt16;
  571.     END;
  572.  
  573.     UserInfoParamPtr = ^UserInfoParam;
  574.     UserInfoParam = RECORD
  575.         qLink:                    QElemPtr;                                { queue link in header }
  576.         qType:                    SInt16;                                    { type byte for safety check }
  577.         ioTrap:                    SInt16;                                    { FS: the Trap }
  578.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  579.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  580.         ioResult:                OSErr;                                    { result code }
  581.         scNamePtr:                StringPtr;
  582.         reserved2:                SInt16;
  583.         reserved3:                SInt16;
  584.         scCode:                    SInt16;
  585.         scPosition:                SInt32;
  586.         scUNRecID:                SInt32;
  587.         scUserID:                SInt32;
  588.         scLoginTime:            SInt32;
  589.         scLastUseTime:            SInt32;
  590.         scSocketNum:            SInt32;
  591.     END;
  592.  
  593.     VolMountedParamPtr = ^VolMountedParam;
  594.     VolMountedParam = RECORD
  595.         qLink:                    QElemPtr;                                { queue link in header }
  596.         qType:                    SInt16;                                    { type byte for safety check }
  597.         ioTrap:                    SInt16;                                    { FS: the Trap }
  598.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  599.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  600.         ioResult:                OSErr;                                    { result code }
  601.         reserved:                Ptr;
  602.         scVRefNum:                SInt16;
  603.         reserved3:                SInt16;
  604.         scCode:                    SInt16;
  605.         scFilesOpen:            SInt16;
  606.         scWriteableFiles:        SInt16;
  607.         scUNRecID:                SInt32;
  608.         scMounted:                BOOLEAN;
  609.         scMountedAsOwner:        BOOLEAN;
  610.     END;
  611.  
  612.     SCCacheStatsRecPtr = ^SCCacheStatsRec;
  613.     SCCacheStatsRec = RECORD
  614.         csVersion:                SInt16;
  615.         csCacheTime:            SInt32;
  616.         csRACacheAttempts:        SInt32;                                    {  file cache  }
  617.         csRACacheHits:            SInt32;
  618.         csRACacheTotalEntries:    SInt32;
  619.         csRACacheEntriesInUse:    SInt32;
  620.         csRACacheEntrySize:        SInt32;
  621.         csDirCacheAttempts:        SInt32;                                    {  dir cache  }
  622.         csDirCacheHits:            SInt32;
  623.         csDirCacheTotalEntries:    SInt32;
  624.         csDirCacheEntriesInUse:    SInt32;
  625.         csDirCacheEntrySize:    SInt32;
  626.         csIconCacheAttempts:    SInt32;                                    {  dt cache  }
  627.         csIconCacheHits:        SInt32;
  628.         csIconCacheTotalEntries: SInt32;
  629.         csIconCacheEntriesInUse: SInt32;
  630.         csIconCacheEntrySize:    SInt32;
  631.         csACtlCacheAttempts:    SInt32;                                    {  PDS info, part of dir cache  }
  632.         csACtlCacheHits:        SInt32;
  633.         csACtlCacheTotalEntries: SInt32;
  634.         csACtlCacheEntriesInUse: SInt32;
  635.         csACtlCacheEntrySize:    SInt32;
  636.         csAUXCacheAttempts:        SInt32;                                    {  not used  }
  637.         csAUXCacheHits:            SInt32;
  638.         csAUXCacheTotalEntries:    SInt32;
  639.         csAUXCacheEntriesInUse:    SInt32;
  640.         csAUXCacheEntrySize:    SInt32;
  641.                                                                         {   New fields for version 3 record }
  642.         csEnumCacheAttempts:    SInt32;
  643.         csEnumCacheHits:        SInt32;
  644.         csEnumCacheTotalEntries: SInt32;
  645.         csEnumCacheEntriesInUse: SInt32;
  646.         csEnumCacheEntrySize:    SInt32;
  647.         csMaxFBUsed:            SInt32;
  648.         csSkipPrsAttempts:        SInt32;
  649.         csSkipPrsHits:            SInt32;
  650.     END;
  651.  
  652.     SCOldCacheStatsRecPtr = ^SCOldCacheStatsRec;
  653.     SCOldCacheStatsRec = RECORD
  654.         csVersion:                SInt16;
  655.         csCacheTime:            SInt32;
  656.         csRACacheAttempts:        SInt32;                                    {  file cache  }
  657.         csRACacheHits:            SInt32;
  658.         csRACacheTotalEntries:    SInt32;
  659.         csRACacheEntriesInUse:    SInt32;
  660.         csRACacheEntrySize:        SInt32;
  661.         csDirCacheAttempts:        SInt32;                                    {  dir cache  }
  662.         csDirCacheHits:            SInt32;
  663.         csDirCacheTotalEntries:    SInt32;
  664.         csDirCacheEntriesInUse:    SInt32;
  665.         csDirCacheEntrySize:    SInt32;
  666.         csIconCacheAttempts:    SInt32;                                    {  dt cache  }
  667.         csIconCacheHits:        SInt32;
  668.         csIconCacheTotalEntries: SInt32;
  669.         csIconCacheEntriesInUse: SInt32;
  670.         csIconCacheEntrySize:    SInt32;
  671.         csACtlCacheAttempts:    SInt32;                                    {  PDS info, part of dir cache  }
  672.         csACtlCacheHits:        SInt32;
  673.         csACtlCacheTotalEntries: SInt32;
  674.         csACtlCacheEntriesInUse: SInt32;
  675.         csACtlCacheEntrySize:    SInt32;
  676.         csAUXCacheAttempts:        SInt32;                                    {  not used  }
  677.         csAUXCacheHits:            SInt32;
  678.         csAUXCacheTotalEntries:    SInt32;
  679.         csAUXCacheEntriesInUse:    SInt32;
  680.         csAUXCacheEntrySize:    SInt32;
  681.     END;
  682.  
  683.     GetCacheStatsParamPtr = ^GetCacheStatsParam;
  684.     GetCacheStatsParam = RECORD
  685.         qLink:                    QElemPtr;                                { queue link in header }
  686.         qType:                    SInt16;                                    { type byte for safety check }
  687.         ioTrap:                    SInt16;                                    { FS: the Trap }
  688.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  689.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  690.         ioResult:                OSErr;                                    { result code }
  691.         reserved:                Ptr;
  692.         reserved2:                SInt16;
  693.         reserved3:                SInt16;
  694.         scCode:                    SInt16;
  695.         reserved4:                SInt16;
  696.         scCacheStatsPtr:        SCCacheStatsRecPtr;
  697.         scCacheStatsReqSize:    SInt16;
  698.         scCacheStatsActSize:    SInt16;
  699.     END;
  700.  
  701.     ResetCacheParamPtr = ^ResetCacheParam;
  702.     ResetCacheParam = RECORD
  703.         qLink:                    QElemPtr;                                { queue link in header }
  704.         qType:                    SInt16;                                    { type byte for safety check }
  705.         ioTrap:                    SInt16;                                    { FS: the Trap }
  706.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  707.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  708.         ioResult:                OSErr;                                    { result code }
  709.         reserved:                SInt32;
  710.         reserved2:                SInt16;
  711.         reserved3:                SInt16;
  712.         scCode:                    SInt16;
  713.         bitmap:                    SInt16;
  714.     END;
  715.  
  716. {  Used in extended user call if attrVersion is kOldUserAttrRecVersion...  }
  717.     OldUserAttrRecPtr = ^OldUserAttrRec;
  718.     OldUserAttrRec = RECORD
  719.         scLoginTime:            SInt32;
  720.         scLastUseTime:            SInt32;
  721.         scSocketNum:            SInt32;
  722.         scConnectionType:        SInt16;
  723.         scDisconnectID:            SInt16;
  724.     END;
  725.  
  726.     OldUserAttrPtr                        = ^OldUserAttrRec;
  727. {  Used in extended user call if attrVersion is kUserAttrRecVersion...  }
  728.     UserAttrRecPtr = ^UserAttrRec;
  729.     UserAttrRec = RECORD
  730.         scLoginTime:            SInt32;
  731.         scLastUseTime:            SInt32;
  732.         scSocketNum:            SInt32;
  733.         scProtocolType:            FourCharCode;                            {  The Session Protocol, i.e. AFP, FTP, SMB  }
  734.         scTransportType:        FourCharCode;                            {  The Transport, i.e. ATP, TCP/IP  }
  735.         scSessionNamePtr:        StringPtr;                                {  Str63  }
  736.         scDisconnectID:            SInt32;
  737.     END;
  738.  
  739.     UserAttrPtr                            = ^UserAttrRec;
  740.     ExtUserInfoParamPtr = ^ExtUserInfoParam;
  741.     ExtUserInfoParam = RECORD
  742.         qLink:                    QElemPtr;                                { queue link in header }
  743.         qType:                    SInt16;                                    { type byte for safety check }
  744.         ioTrap:                    SInt16;                                    { FS: the Trap }
  745.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  746.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  747.         ioResult:                OSErr;                                    { result code }
  748.         scNamePtr:                StringPtr;
  749.         reserved2:                SInt16;
  750.         reserved3:                SInt16;
  751.         scCode:                    SInt16;
  752.         scPosition:                SInt32;
  753.         scUNRecID:                SInt32;
  754.         scUserID:                SInt32;
  755.         attrVersion:            SInt16;
  756.         scUserAttrPtr:            UserAttrPtr;
  757.     END;
  758.  
  759.     ServiceStateParamPtr = ^ServiceStateParam;
  760.     ServiceStateParam = RECORD
  761.         qLink:                    QElemPtr;                                { queue link in header }
  762.         qType:                    SInt16;                                    { type byte for safety check }
  763.         ioTrap:                    SInt16;                                    { FS: the Trap }
  764.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  765.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  766.         ioResult:                OSErr;                                    { result code }
  767.         reserved:                StringPtr;
  768.         reserved2:                SInt16;
  769.         reserved3:                SInt16;
  770.         scCode:                    SInt16;
  771.         afpTCPState:            SInt16;
  772.         httpState:                SInt16;
  773.         otherState:                SInt16;
  774.         multiHoming:            SInt16;
  775.         srvrUsageLimit:            SInt16;
  776.     END;
  777.  
  778.     PlugInInfoParamPtr = ^PlugInInfoParam;
  779.     PlugInInfoParam = RECORD
  780.         qLink:                    QElemPtr;                                { queue link in header }
  781.         qType:                    SInt16;                                    { type byte for safety check }
  782.         ioTrap:                    SInt16;                                    { FS: the Trap }
  783.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  784.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  785.         ioResult:                OSErr;                                    { result code }
  786.         reserved:                SInt32;
  787.         reserved2:                SInt16;
  788.         reserved3:                SInt16;
  789.         scCode:                    SInt16;
  790.         version:                SInt16;
  791.         index:                    SInt32;
  792.         error:                    SInt8;
  793.         reserved4:                SInt8;
  794.         name:                    PACKED ARRAY [0..31] OF CHAR;
  795.         versionStr:                PACKED ARRAY [0..11] OF CHAR;
  796.         adminURL:                PACKED ARRAY [0..255] OF CHAR;
  797.         plugInAttributes:        UInt32;
  798.         plugInRef:                SInt32;
  799.         isLast:                    SInt16;
  800.     END;
  801.  
  802.     PlugInMimeTypeParamPtr = ^PlugInMimeTypeParam;
  803.     PlugInMimeTypeParam = RECORD
  804.         qLink:                    QElemPtr;                                { queue link in header }
  805.         qType:                    SInt16;                                    { type byte for safety check }
  806.         ioTrap:                    SInt16;                                    { FS: the Trap }
  807.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  808.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  809.         ioResult:                OSErr;                                    { result code }
  810.         reserved:                SInt32;
  811.         reserved2:                SInt16;
  812.         reserved3:                SInt16;
  813.         scCode:                    SInt16;
  814.         version:                SInt16;
  815.         plugInRef:                SInt32;
  816.         index:                    SInt32;
  817.         error:                    SInt8;
  818.         reserved4:                SInt8;
  819.         mimetype:                PACKED ARRAY [0..79] OF CHAR;
  820.         suffix:                    PACKED ARRAY [0..31] OF CHAR;
  821.         typeCode:                OSType;
  822.         creatorCode:            OSType;
  823.         isLast:                    SInt16;
  824.     END;
  825.  
  826.     SetHistoryParamPtr = ^SetHistoryParam;
  827.     SetHistoryParam = RECORD
  828.         qLink:                    QElemPtr;                                { queue link in header }
  829.         qType:                    SInt16;                                    { type byte for safety check }
  830.         ioTrap:                    SInt16;                                    { FS: the Trap }
  831.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  832.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  833.         ioResult:                OSErr;                                    { result code }
  834.         reserved:                SInt32;
  835.         reserved2:                SInt16;
  836.         historySampleTime:        SInt16;
  837.         scCode:                    SInt16;
  838.     END;
  839.  
  840.     HistoryDataPtr = ^HistoryData;
  841.     HistoryData = RECORD
  842.         dpMin:                    SInt8;
  843.         dpMax:                    SInt8;
  844.         dpAverage:                SInt8;
  845.         filler:                    SInt8;
  846.     END;
  847.  
  848.     ServerHistoryRecPtr = ^ServerHistoryRec;
  849.     ServerHistoryRec = RECORD
  850.         historySyncCount:        UInt32;
  851.         historyLastSample:        UInt32;
  852.         historySampleTime:        UInt16;
  853.         numDataPoints:            UInt16;
  854.         dataPoint:                ARRAY [0..1023] OF HistoryData;
  855.     END;
  856.  
  857.     ServerHistoryPtr                    = ^ServerHistoryRec;
  858.     GetHistoryParamPtr = ^GetHistoryParam;
  859.     GetHistoryParam = RECORD
  860.         qLink:                    QElemPtr;                                { queue link in header }
  861.         qType:                    SInt16;                                    { type byte for safety check }
  862.         ioTrap:                    SInt16;                                    { FS: the Trap }
  863.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  864.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  865.         ioResult:                OSErr;                                    { result code }
  866.         scHistory:                ServerHistoryPtr;
  867.         numDataPointsRequested:    SInt16;
  868.         reserved2:                SInt16;
  869.         scCode:                    SInt16;
  870.     END;
  871.  
  872.     SMBConfigParamPtr = ^SMBConfigParam;
  873.     SMBConfigParam = RECORD
  874.         qLink:                    QElemPtr;                                { queue link in header }
  875.         qType:                    SInt16;                                    { type byte for safety check }
  876.         ioTrap:                    SInt16;                                    { FS: the Trap }
  877.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  878.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  879.         ioResult:                OSErr;                                    { result code }
  880.         reserved:                UInt32;
  881.         reserved2:                UInt32;
  882.         scCode:                    SInt16;
  883.         enabled:                BOOLEAN;
  884.         reserved3:                SInt8;
  885.         netBIOSName:            Str63;
  886.         workgroupName:            Str63;
  887.         comment:                Str63;
  888.         winsAddress:            Str63;
  889.     END;
  890.  
  891. {
  892.       Do not use the following ObsoleteBlockUserRec structure. This corresponds
  893.       to the original BlockUserRecParam call version (version 1), and has been
  894.       superceeded by version 2 as of May, 1999. The BlockGetUser call will
  895.       honor the old format for binary compatibilty, but you should switch
  896.       to using the most current version. The change is to the field "name",
  897.       which has been switched from type Str32Field to type Str31. This removes
  898.       alignment and padding problems with some compilers, and is more correct.
  899. }
  900.     ObsoleteBlockUserRec1Ptr = ^ObsoleteBlockUserRec1;
  901.     ObsoleteBlockUserRec1 = RECORD
  902.         name:                    Str32Field;
  903.         recID:                    UInt32;
  904.         id:                        UInt32;
  905.         loginTime:                UInt32;
  906.         lastUseTime:            UInt32;
  907.         serviceType:            OSType;
  908.         sessionType:            OSType;
  909.         CASE INTEGER OF
  910.         0: (
  911.             at:                    AddrBlock;
  912.             );
  913.         1: (
  914.             ip:                    UInt32;
  915.             );
  916.     END;
  917.  
  918.     BlockUserRecPtr = ^BlockUserRec;
  919.     BlockUserRec = RECORD
  920.         name:                    Str31;
  921.         recID:                    UInt32;
  922.         id:                        UInt32;
  923.         loginTime:                UInt32;
  924.         lastUseTime:            UInt32;
  925.         serviceType:            OSType;
  926.         sessionType:            OSType;
  927.         flags:                    UInt32;
  928.         disconnectTimer:        UInt32;
  929.         CASE INTEGER OF
  930.         0: (
  931.             at:                    AddrBlock;
  932.             );
  933.         1: (
  934.             ip:                    UInt32;
  935.             );
  936.     END;
  937.  
  938.     BlockUserPtr                        = ^BlockUserRec;
  939.     BlockUserRecParamPtr = ^BlockUserRecParam;
  940.     BlockUserRecParam = RECORD
  941.         qLink:                    QElemPtr;                                { queue link in header }
  942.         qType:                    SInt16;                                    { type byte for safety check }
  943.         ioTrap:                    SInt16;                                    { FS: the Trap }
  944.         ioCmdAddr:                Ptr;                                    { FS: address to dispatch to }
  945.         ioCompletion:            SCCompletionUPP;                        { completion routine addr (0 for synch calls) }
  946.         ioResult:                OSErr;                                    { result code; -39 == more users than buffer }
  947.         reserved:                UInt32;
  948.         reserved2:                UInt32;
  949.         scCode:                    SInt16;
  950.         version:                UInt32;                                    {  Should be kSCBlockGetUserRecVersion.  }
  951.         numUsers:                UInt32;                                    {  On input, size of buffer. On output, num users.  }
  952.         users:                    BlockUserPtr;                            {  Pointer to array of SUserRecs to be filled in by call.  }
  953.     END;
  954.  
  955.     SCParamBlockRecPtr = ^SCParamBlockRec;
  956.     SCParamBlockRec = RECORD
  957.         CASE INTEGER OF
  958.         0: (
  959.             startParam:            StartParam;
  960.             );
  961.         1: (
  962.             disconnectParam:    DisconnectParam;
  963.             );
  964.         2: (
  965.             pollServerParam:    PollServerParam;
  966.             );
  967.         3: (
  968.             standardParam:        StandardParam;
  969.             );
  970.         4: (
  971.             setupParam:            SetupParam;
  972.             );
  973.         5: (
  974.             statusParam:        StatusParam;
  975.             );
  976.         6: (
  977.             serverEventParam:    ServerEventParam;
  978.             );
  979.         7: (
  980.             versionParam:        VersionParam;
  981.             );
  982.         8: (
  983.             userInfoParam:        UserInfoParam;
  984.             );
  985.         9: (
  986.             volMountedParam:    VolMountedParam;
  987.             );
  988.         10: (
  989.             getCacheStatsParam:    GetCacheStatsParam;
  990.             );
  991.         11: (
  992.             resetCacheParam:    ResetCacheParam;
  993.             );
  994.         12: (
  995.             extUserInfoParam:    ExtUserInfoParam;
  996.             );
  997.         13: (
  998.             serviceStateParam:    ServiceStateParam;
  999.             );
  1000.         14: (
  1001.             plugInInfoParam:    PlugInInfoParam;
  1002.             );
  1003.         15: (
  1004.             plugInMimeTypeParam: PlugInMimeTypeParam;
  1005.             );
  1006.         16: (
  1007.             setHistoryParam:    SetHistoryParam;
  1008.             );
  1009.         17: (
  1010.             getHistoryParam:    GetHistoryParam;
  1011.             );
  1012.         18: (
  1013.             smbConfigParam:        SMBConfigParam;
  1014.             );
  1015.         19: (
  1016.             blockGetUserParam:    BlockUserRecParam;
  1017.             );
  1018.     END;
  1019.  
  1020.     SCParamBlockPtr                        = ^SCParamBlockRec;
  1021.     SCParamBlockPtrPtr                     = ^SCParamBlockPtr;
  1022. {  68K Trap Interface ------------------------------------------------------------------------------  }
  1023. FUNCTION ServerDispatchSync(paramBlock: SCParamBlockPtr): OSErr;
  1024.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1025.     INLINE $205F, $7000, $A094, $3E80;
  1026.     {$ENDC}
  1027. {  Note: there is no ServerDispatchAsync!  }
  1028. {  Gestaltage --------------------------------------------------------------------------------------  }
  1029.  
  1030.  
  1031. CONST
  1032.     gestaltASIPFSVersion        = '#!#7';                        {  Defined only from 6.0...  }
  1033.  
  1034. {  -------------------------------------------------------------------------------------------------  }
  1035.  
  1036. {$ALIGN RESET}
  1037. {$POP}
  1038.  
  1039. {$SETC UsingIncludes := AppleShareFileServerControlIncludes}
  1040.  
  1041. {$ENDC} {__APPLESHAREFILESERVERCONTROL__}
  1042.  
  1043. {$IFC NOT UsingIncludes}
  1044.  END.
  1045. {$ENDC}
  1046.